草庐IT

Java Swingworker 和多线程

全部标签

java - Android 中的多线程

我正在尝试对一些OpenCV4Android代码进行多线程处理。我将一个432x432的图像分成9个144x144的fragment,并将每个fragment传递给不同的线程:Thread[]threads=newThread[9];for(inti=0;i这是线程类:publicclassMyThreadimplementsRunnable{finalMatblock;publicMyThread(Matblock){this.block=block;}publicvoidrun(){/*doimageprocessingonblock*/Matkernel=Imgproc.getS

android - 等待 UI 线程完成

我正在运行仪器Activity测试。因为我需要在Activity的一个UI元素中执行一些UI操作。所以我在Activity的UI线程中这样做:settingsActivity.runOnUiThread(newRunnable(){@Overridepublicvoidrun(){testSwitch.performClick();}});每次调用执行点击时,我都会遇到在onSaveInstanceState之后无法执行此操作。我做过的几件事:我试过将Thread.sleep()放在代码之后,但它不起作用。我没有完成拆解中的Activity。所以,我不知道Activity是如何被销毁的

Android Room Kotlin - 后台线程查询 - 返回值问题

我已经将示例程序从Java/SQLite转换为Kotlin/Room。我正在努力在后台线程中实现具有返回值的查询。这已被问到,但我无法让它工作。我已经阅读了类似问题的答案,但有些已被弃用,或者某些解决方案对于应该微不足道的事情来说似乎很复杂。当我需要使用查询的返回值时,我真的很难想出一个简单的解决方案。(如果我强制在主线程中使用allowMainThreadQueries()进行查询,一切都会正常进行)这是我希望在后台线程中执行查询的功能之一:fungetCrimes():List{valcrimes=crimesDAO.getAllCrimes()asArrayListreturnc

android - 获取 UI 线程的延迟

我正在使用以下代码设置listview项目的颜色parent.getChildAt(itemPosition).setBackgroundColor(Color.parseColor("#FF9494"));我在OnItemClickListener中编写的这段代码。设置颜色后,我想将此颜色保留4秒,然后将项目的颜色恢复为之前的颜色(比如白色)。我尝试让UI线程休眠,但我知道这不是正确的方法。谁能建议我如何实现这一点? 最佳答案 parent.getChildAt(itemPosition).setBackgroundColor(C

OpenCV图像处理——Python开发中OpenCV视频流的多线程处理方式

前言在做视觉类项目中,常常需要在Python环境下使用OpenCV读取本地的还是网络摄像头的视频流,之后再调入各种模型,如目标分类、目标检测,人脸识别等等。如果使用单线程处理,很多时候会出现比较严重的时延,如果算力吃紧,模型推理所占用的更长的话,这种延迟感会更加明显,会出现卡帧的现象。在这种情况下,往往要把代码从单线程改为了多线程,即单独用一个线程实时捕获视频帧,主线程在需要时从子线程拷贝最近的帧使用即可。单线程处理视频流时,如果目标检测模型较大或者任务复杂,会影响处理速度。而使用多线程,让视频捕获和目标检测分别在各自的线程中运行,能够更充分地利用CPU的多核心处理能力,提高整体的处理效率和实

【C++入门到精通】 线程库 | thread类 C++11 [ C++入门 ]

阅读导航引言一、thread类的简单介绍二、线程函数详细介绍1.start()函数(1)头文件(2)函数原型2.join()函数(1)头文件(2)函数原型3.detach()函数(1)头文件(2)函数原型(3)使用示例4.get_id()函数(1)头文件(2)函数原型(3)使用示例5.joinable()函数(1)头文件(2)函数原型(3)参数解释(4)返回值(5)使用示例三、std::this_thread命名空间温馨提示引言当讨论现代编程语言的特性时,C++11无疑是一个不容忽视的里程碑。在前一篇文章中,我们深入探讨了Lambda表达式在C++11中的引入和应用。本文将继续探索C++11的

java - 在单独的线程中停止可运行的

嘿,我目前的Android应用程序有问题。我通过开始一个额外的线程实现执行器接口(interface):classFlasherimplementsExecutor{Threadt;publicvoidexecute(Runnabler){t=newThread(r){};t.start();}}我这样启动我的Runnable:flasherThread.execute(flashRunnable);但是我怎样才能阻止它呢? 最佳答案 好的,这只是最基本的线程101,但还有另一个例子:老式线程:classMyTaskimplemen

java - 停止调用 JNI 函数的 Java 线程

这里我想停止我的线程或杀死我的线程,它是在Java层上创建的,并且这个线程正在调用JNI函数。有时根据我的应用程序要求,我必须在某些情况下停止此JNI函数执行,否则不会。newThread(newRunnable(){@Overridepublicvoidrun(){//Myjnifunctioncall,ItcallsmyJNIlayerCfunction.}}现在,当这个线程开始执行并且它在JNI级别工作时,我对此并不担心,但是在某些情况下,我想从其他类或方法停止这个JNI工作,那么我该如何停止这个线程。注意:这里我的线程也没有while循环,所以我也无法检查一些全局标志变量。那么

JAVA线程池监控以及动态调整线程池

JAVA线程池监控以及动态调整线程池关于线程池的基础知识和源码见Java线程池源码分析_出世&入世的博客-CSDN博客1、背景Java线程池源码分析里虽然介绍了线程池的核心配置(核心线程数、最大线程数和队列大小)该如何配置,但是实际上业界也没有一个统一的标准。虽然有些所谓的"公式",但是不同的业务场景复杂多变,配置原则也不尽相同。从实际经验来看,IO密集型、CPU密集型应用在线程配置上就比较悬殊,因此没有一个通用的适合所有场景的公式。那么我们换一种思路,就是既然不能明确配置,那么能不能支持动态配置呢?答案是肯定的,因为线程池本身就支持核心线程数和最大线程数的修改,而且是实时生效的。通常在生产环

Android startService() 需要很长时间才能返回到 UI 线程

第一次启动时,我的用例(大致)如下:activity启动一个服务服务获取数据并将其保存在数据库中服务通知有Intent的ActivityActivity显示数据现在我想在服务繁忙时显示一个进度条。问题是:startService(newIntent(getApplicationContext(),UpdateDataService.class));需要很长时间才能“返回”到UI线程。它似乎是一个同步函数(或not?)。如果服务类为空,startService命令几乎是即时处理的。似乎UI线程等待Serice处理它的工作,这根本没有意义。我试图在我的UI线程中显示进度条的同时开始(看起来